<?php
require_once 'pw_controller.php';

/**
 * @package sisco
 * @subpackage controller
 */
class Sisco extends Pw_controller 
{

    protected function getUsuarioLogueado($msj = null)
    {
        $usuario = Usuario::getUsuarioLogueado();
        $msg     = new PwMsgHandler();
        
        if ($usuario->id) {
            return $usuario;
        }
        else {  
            // Mensaje de error
            $msg->error = (isset($msj) ? $msj : 'Debe iniciar sesión para acceder a este contenido');
            $msg->persistError();
                        
            //$this->session->set_flashdata('afterlogin', str_replace('index.php/', '', current_url()));
            redirect( base_url() );
        }
    } // getUsuarioLogueado

    protected function validarPermisos($usuario, $gruposValidos, $msg = null)
    {
        // siempre tengo permisos si soy un administrador
        if ($usuario->grupo->where('nombre','admin')->count()) {
            return true;
        }

        // URL si los permisos son insuficientes
        $url_error = base_url() . 'usuarios/login/';

        $interseccionGrupos = array_intersect($gruposValidos, $usuario->getGrupos());
        if (count($interseccionGrupos) > 0) {
            return true;
        }
        else {
            if (isset($url)) {

                $msg = new PwMsgHandler();
                $msg->error = (isset($msj) ? $msj : 'No tienes sufiencites permisos para realizar esta acción');
                $msg->persistError();

                redirect($url_error);
            }
            else {
                return false;
            }
        }
    } // validarPermisos

    protected function getPuntoDeVenta($msj = null)
    {
        $almacen = Almacen::getPuntoDeVenta();
        $msg     = new PwMsgHandler();
        
        if ($almacen->id) {
            return $almacen;
        }
        else {  
            // Mensaje de error
            $msg->error = (isset($msj) ? $msj : 'No se inició sesión como punto de venta');
            $msg->persistError();
                        
            redirect( base_url() );
        }
    } // getPuntoDeVenta

	public function __construct()
	{
		parent::__construct();
	}
	
} // class Sisco

/* End of file sisco.php */
/* Location: ./application/controllers/sisco.php */
